iT邦幫忙

2026 iThome 鐵人賽

DAY 11
1
Build on Google AI

30 天用 Google ADK 打造你的「全自動 AI 虛擬團隊」系列 第 11

Day 11 | 髒數據清洗:利用 Gemini 處理非結構化情報

  • 分享至 

  • xImage
  •  

大家好!歡迎來到「Build on Google AI」工程挑戰的第 11 天。

在昨天的實戰中,我們的代理人化身為網路爬蟲,成功抓取了外部的 AI 趨勢。但在「研發與工程創新」的真實戰場上,我們面臨的最大敵人往往不是「沒有數據」,而是「數據太髒」。

舉個最常見的例子:當我們在籌備技術大會時,講者透過 Email 或 Luma 備註欄位傳來的資料可能是這樣的:「嗨我是 Kevin,在 APMIC 當TPM,這次想分享 GenAI 實戰。對了我吃素,另外講者介紹幫我寫喜歡喝半糖少冰的烏龍奶茶,謝謝!」

面對這種口語化、毫無規則可言的非結構化情報,傳統的 Regex (正規表達式) 根本無用武之地。今天,我們將利用 Google ADK 建立一個專職的資料清洗代理人,讓 Gemini 成為我們最可靠的資料解析器 (Parser)!

第一步:AI 數據清洗的工程思維
在微服務或 Agent 架構中,我們不應該讓同一個代理人同時負責「專案管理」、「網路爬蟲」又兼做「資料清理」。這違反了單一職責原則 (Single Responsibility Principle)。

為此,我們需要定義一個全新的 ADK 代理人,它的唯一任務就是:接收髒數據,吐出結構化的 JSON。

第二步:定義資料清洗代理人打開我們的 agent.py,我們將使用 Agent 類別與 gemini-flash-latest 模型來建立這個專屬的資料處理節點。 這裡的關鍵在於 instruction (系統提示詞) 的設計。我們必須透過提示詞,嚴格限制模型的輸出格式。

from google.adk.agents.llm_agent import Agent

# 定義嚴格的資料清洗提示詞
data_cleaner_instruction = """
你是一個後端系統的專業資料解析器 (Data Parser)。
你的唯一任務是從使用者提供的非結構化文字中,萃取出關鍵資訊,並「嚴格且僅」以 JSON 格式輸出。
絕對不要包含任何 Markdown 標記(如 ```json)或額外的問候語。

需要萃取的 JSON 欄位與型態定義如下:
{
    "name": "字串,講者姓名",
    "company": "字串,任職公司,若無則填 null",
    "topic": "字串,演講主題",
    "dietary_preference": "字串,如 素食/葷食,若無提及填 null",
    "special_notes": "字串,其他特殊需求或備註"
}
"""

# 建立資料清洗代理人
data_cleaner_agent = Agent(
    model='gemini-flash-latest',
    name='data_cleaner_agent',
    description="Extracts and formats unstructured text into strict JSON data.",
    instruction=data_cleaner_instruction,
)

(程式碼說明:我們建立了一個名為 data_cleaner_agent 的代理人,並將精心設計的提示詞賦予了 instruction 參數,確保它能勝任解析任務。)

第三步:見證亂碼變黃金
現在,當我們將前面那段充滿口語與冗詞贅字的講者 Email 餵給這個 data_cleaner_agent 時,它會穩定且精準地吐出以下結果:

{ "name": "Kevin", 
  "company": "APMIC", 
  "topic": "GenAI 落地工程實踐", 
  "dietary_preference": "蛋奶素", 
  "special_notes": "投影片需要雙螢幕投影,可能需要一杯少冰微糖的烏龍茶" }

這在工程實踐上具有巨大意義!一旦資料變成了標準的 JSON 字典 (Dictionary),你的 Python 程式碼就能輕鬆地使用 json.loads() 將其解析,並進一步寫入資料庫,或是透過 API 自動建立票卷與訂便當系統的清單。

https://ithelp.ithome.com.tw/upload/images/20260912/20121643QY12FYcuHh.png

小結
今天,我們利用 Gemini 極強的語意理解能力,結合 ADK 代理人的 instruction 機制,完美解決了傳統軟體工程中最頭痛的「髒數據解析」難題。這大幅提升了系統在面對真實世界複雜輸入時的容錯率與穩定度。


上一篇
Day 10 | 網路煉金術:實作非同步爬蟲,抓取最新 AI 趨勢
下一篇
Day 12 | 狀態管理:讓 PM 記住上下文的記憶機制 (Memory)
系列文
30 天用 Google ADK 打造你的「全自動 AI 虛擬團隊」20
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言